<?php
/**
 * Controller de Sims.
 *
 *
 * @filesource          
 * @copyright		
 * @link		http://www.pragmatia.com Pragmatia
 * @package		datagro
 * @subpackage	app.controllers
 * @version     1.1
 * @license		http://www.opensource.org/licenses/mit-license.php The MIT License
 * @author      Martin Radosta <mradosta@pragmatia.com>
 */


/**
 * Clase SimsController
 *
 * @package	    datagro
 * @subpackage	app.controllers
 */

class  SimsController extends AppController {
    var $name = 'Sims';
	var $uses = array("Sim", "Dominio");

/**
 * Index.
 *
 */
    function index()
    {
		if(!empty($this->data)) {
			$condicion = $this->Filtro->generarCondicion($this->data['Filtro']);
			$this->paginate['conditions'] = $condicion;
		}

		$this->set('usuarios', $this->Sim->Usuario->generateList(null, null, null, null, "{n}.Usuario.nombre"));		
		$this->set('telcos', $this->Dominio->generateList(array("nombre"=>"telcos"), null, null, null, "{n}.Dominio.valor"));		
		$this->set('registros', $this->paginate());
    }

/**
 * Seleccionar.
 *
 */
   function seleccionar($id = false) {

		$usuario = $this->Session->read('Usuario');
		if(empty($usuario['Usuario']['usuario_id']) && $usuario['Grupo']['id'] != 1) {//es un padre
			$usuario_id = $usuario['Usuario']['id'];
		}
		else {
			$usuario_id = $usuario['Usuario']['usuario_id'];
		}

		//si es el admin le dejo ver todos los sims.
		if($usuario['Grupo']['id'] != 1) {
			$this->data['Filtro']['Sim-usuario_id'] = $usuario_id;
		}

        if ($id && is_numeric($id)) {
			$this->Sim->recursive = 2;
			if($usuario['Grupo']['id'] != 1) {
				$condicion['Sim']['Sim.usuario_id'] = $usuario_id;
			}
			$condicion['Sim']['Sim.id'] = $id;
			$sim = $this->Sim->find($condicion);

            $this->Session->write('Sim', $sim);
			$this->Session->setFlash('El modulo se selecciono correctamente.', 'ok');
			$this->History->goBack(2);
		}

		if(!empty($this->data))
		{
			$condicion = $this->Filtro->generarCondicion($this->data['Filtro']);
			$this->paginate['conditions'] = $condicion;
		}
		$this->set('registros', $this->paginate());
   }  

/**
 * DeSeleccionar.
 *
 */
   function borrarSeleccion() {
		$this->Session->delete('Sim'); 
		$this->Session->setFlash('Se borro la seleccion del modulo correctamente.', 'ok');
		$this->redirect("seleccionar", null, true);
   }


/**
 * View.
 *
 */
   function view($id = false) {
        if ($id && is_numeric($id)) {
            $this->data = $this->Sim->read(null, $id);
        }    
   }  


/**
 * renombrarModulo.
 *
 */
   function renombrarModulo() {
		$usuario = $this->Session->read('Usuario');
		$usuario_id = $usuario['Usuario']['id'];
		$this->data['Filtro']['Sim-usuario_id'] = $usuario_id;
		$condicion = $this->Filtro->generarCondicion($this->data['Filtro']);
		$this->paginate['conditions'] = $condicion;
		$this->set('registros', $this->paginate());
   }  

/**
 * Add.
 *
 */
   function add() {
		if(!empty($this->data) && isset($this->data['Sim']['accion']) && ($this->data['Sim']['accion'] == "grabar" || $this->data['Sim']['accion'] == "cancelar")) {
			if ($this->data['Sim']['accion'] == "grabar") {
				if($this->Sim->create($this->data) && $this->Sim->validates()) {
					if($this->Sim->save($this->data))
						$this->Session->setFlash('La sim se agrego correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible agregar la nueva sim.', 'error');	

					$this->redirect("index", null, true);
				}
				else {
					$this->set('usuarios', $this->Sim->Usuario->generateList(array("Usuario.usuario_id"=>"0"), null, null, null, "{n}.Usuario.nombre"));		
					$this->set('telcos', $this->Dominio->generateList(array("nombre"=>"telcos"), null, null, null, "{n}.Dominio.valor"));		
					$this->set('equipos', $this->Sim->Equipo->generateList(null, null, null, null, "{n}.Equipo.nombre"));		
				}
			}
			elseif ($this->data['Sim']['accion'] == "cancelar") {
				$this->redirect("index", null, true);
			}
		}
		else {
			$this->set('usuarios', $this->Sim->Usuario->generateList(null, null, null, null, "{n}.Usuario.nombre"));		
			$this->set('telcos', $this->Dominio->generateList(array("nombre"=>"telcos"), null, null, null, "{n}.Dominio.valor"));		
			$this->set('equipos', $this->Sim->Equipo->generateList(null, null, null, null, "{n}.Equipo.nombre"));		
		}
   }    


/**
 * Edit.
 *
 */
   function edit($id, $renombrarModulo=false) {

		if(!empty($this->data) && isset($this->data['Sim']['accion']) && ($this->data['Sim']['accion'] == "grabar" || $this->data['Sim']['accion'] == "cancelar")) {
			if($this->data['Sim']['accion'] == "grabar") {

				$prev = $this->Sim->findById($this->data['Sim']['id']);
				if ($prev['Sim']['usuario_id'] != $this->data['Sim']['usuario_id']) {
					$sql = null;
					$sql = "delete dd from detalle_datos dd inner join datos d on (dd.dato_id = d.id and d.sim_id = '" . $this->data['Sim']['id'] . "');";
					$this->Sim->query($sql);
					$sql = "DELETE from datos where sim_id = '" . $this->data['Sim']['id'] . "';";
					$this->Sim->query($sql);
				}
				if($this->Sim->create($this->data) && $this->Sim->validates())
				{
					if($this->Sim->save($this->data))
						$this->Session->setFlash('La sim se actualizo correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible actualizar la sim.', 'error');	

					if(isset($this->data['Sim']['renombrarModulo']) && $this->data['Sim']['renombrarModulo'] == "true")
						$this->redirect("renombrarModulo", null, true);
					else
						$this->redirect("index", null, true);
				}
				else {
					$this->set('renombrarModulo', $renombrarModulo);
					$this->set('usuarios', $this->Sim->Usuario->generateList(null, null, null, null, "{n}.Usuario.nombre"));		
					$this->set('telcos', $this->Dominio->generateList(array("nombre"=>"telcos"), null, null, null, "{n}.Dominio.valor"));		
					$this->set('equipos', $this->Sim->Equipo->generateList(null, null, null, null, "{n}.Equipo.nombre"));		
					$this->render('add');
				}
			}
			elseif($this->data['Sim']['accion'] == "cancelar") {
				if(isset($this->data['Sim']['renombrarModulo']) && $this->data['Sim']['renombrarModulo'] == "true")
					$this->redirect("renombrarModulo", null, true);
				else
					$this->redirect("index", null, true);
			}
		}
		else {
			$this->data = $this->Sim->read(null, $id);
			$this->set('renombrarModulo', $renombrarModulo);
			$this->set('usuarios', $this->Sim->Usuario->generateList(null, null, null, null, "{n}.Usuario.nombre"));		
			$this->set('telcos', $this->Dominio->generateList(array("nombre"=>"telcos"), null, null, null, "{n}.Dominio.valor"));		
			$this->set('equipos', $this->Sim->Equipo->generateList(null, null, null, null, "{n}.Equipo.nombre"));		
			$this->render('add');
		}   
   }    


/**
 * Delete.
 *
 */
   function delete($id = false) {
        if ($id && is_numeric($id)){
			if ($this->Sim->delete($id)) {
				$this->Session->setFlash('La sim se borro correctamente.', 'ok');	
			}
			else {
				$this->Session->setFlash('No fue posible borrar la sim.', 'error');	
			}
        }    
		$this->redirect('index');
   }  

}
?>